Telephone networks are well suited for supporting real time communication by establishing a dedicated communication link between a calling party and a called party. Information such as voice information is transmitted via the dedicated communication link between the communicating parties. As opposed thereto computer networks often do not establish a dedicated communication link between communicating devices but rather transmit data packets containing payload information between the communicating devices through the network. Such type of packet transmission was not originally designed to handle real time communications, as packets may have varying transmission delays. Packet-switched networks were rather designed to exchange data between computing devices with a data exchange not under real-time requirements.
In a packets switched network the individual data packets indicate the desired recipient and are transmitted via the communication network along the same path or via different paths. At the receiving party the data packets are collected and the communicated information is extracted. In order to be able to properly assemble the original information content, the individual data packets are numbered sequentially so that the receiving party is able to arrange the received data packets into the proper sequence for further processing. A well-known example of a packet-switched communication network is the Internet.
However, with the merging of telecommunication networks required to support real time communications and computer networks, the real-time requirement also applies to the transmission of data through the packet-switched communication network.
A variety of protocols exists for supporting real-time data transfer in packet-switched networks, one of which is RTP (Real-time Transfer Protocol) to transmit real-time data in packets in IP networks. RTP splits a stream of real-time data such as video or audio streams into small frames and appends a sequence number and a time stamp to each frame. The frames are then transmitted in the packet-switched network.
When the packets are received it is possible to recreate the original stream by using the time stamp and the sequence number of the individual received packets. RFC 3550 “RTP: A Transport Protocol for Real-Time Applications” and RFC 3551 “RTP Profile for Audio and Video Conferences with Minimal Control” by the Internet Engineering Task Force (IETF) describe different payload formats for use in the RTP protocol. These payload formats are called the μ-law and the A-law encoding, with μ-law known as PCMU with payload type number 0 and A-law known as PCMA with payload type number 8.
In real-time packet transmission applications problems occur if packets are corrupted or lost on their way from the transmitting entity to the receiving entity. In this case, the receiving entity cannot simply wait for a re-transmission of a lost or corrupted data packet, and dropouts of the transmitted signal occur. To cover up for lost packets, the receiver applies techniques known as packet loss concealment, e.g. in the transmission of video or audio streams. Examples of packet loss concealment algorithms are described in ITU-T Recommendation G.711 Appendix (09/99) A high quality low-complexity algorithm for packet loss concealment with G.711.
However, the above algorithms for packet loss concealment are very performance demanding and typically require a hardware design with a dedicated digital signal processor which is handling error concealment tasks.
In environments lacking a dedicated processor or high performance processor, error concealment algorithms therefore cannot be applied, in which case the audible effects of packet loss, such as abrupt silence or repetition of a lost packet may be quite annoying for the communicating parties.